package com.jumi.microservice.domain;


import com.jumi.microservice.common.base.AbstractObject;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 商城素材表
 * </p>
 *
 * @author liuz
 * @since 2020-07-27
 */
@ApiModel(value="SourceMaterial对象", description="商城素材表")
public class SourceMaterialVO extends AbstractObject implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "素材主键ID")
    private Long id;

    @ApiModelProperty(value = "商品spu id")
    private Long spuGoodsId;

    @ApiModelProperty(value = "商品spu名称")
    private String spuGoodsName;

    @ApiModelProperty(value = "商品分类(一级)id")
    private Long categoryId;

    @ApiModelProperty(value = "素材描述")
    @Length(max = 255,message = "素材描述长度不能超过255个字符")
    private String materialDescription;

    @ApiModelProperty(value = "素材图片（图片之间用|来断开）")
    private String sourceMaterialImage;

    @ApiModelProperty(value = "素材模块 0全部,1商品素材，2发现推荐")
//    @NotNull(message = "素材模块不能为空")
    private Integer moduleType;

    @ApiModelProperty(value = "素材分类:  0: 全部,1: 商品素材, 2: 拉新素材, 3: 聚米日签, 4: 商学院动态,5: 活动宣导 ")
    private Integer sourceClassfy;

    @ApiModelProperty(value = "素材分类:  0: 全部,1: 商品素材, 2: 拉新素材, 3: 聚米日签, 4: 商学院动态,5: 活动宣导 ")
    private String sourceClassfyName;

    @ApiModelProperty(value = "状态，1启用，0.禁用")
    private Integer status;

    @ApiModelProperty(value = "开始时间")
    private String startTime;

    @ApiModelProperty(value = "结束时间")
    private String endTime;

    @ApiModelProperty(value = "添加人")
    private String creater;

    @ApiModelProperty(value = "添加时间")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "修改人")
    private String modifier;

    @ApiModelProperty(value = "修改时间")
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "商品主图")
    private String goodsImage;

    @ApiModelProperty(value = "商品价格")
    private BigDecimal goodsPrice;

    @ApiModelProperty(value = "素材库发布时间")
    private String delayTime;

    @ApiModelProperty(value = "素材视频")
    private String videoUrl;

    @ApiModelProperty(value = "素材视频缩略图")
    private String videoPicUrl;

    @ApiModelProperty(value = "素材内容类型(1: 图片, 2:视频)")
    private Integer sourceType;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getSpuGoodsId() {
        return spuGoodsId;
    }

    public void setSpuGoodsId(Long spuGoodsId) {
        this.spuGoodsId = spuGoodsId;
    }

    public String getMaterialDescription() {
        return materialDescription;
    }

    public void setMaterialDescription(String materialDescription) {
        this.materialDescription = materialDescription;
    }

    public String getSourceMaterialImage() {
        return sourceMaterialImage;
    }

    public void setSourceMaterialImage(String sourceMaterialImage) {
        this.sourceMaterialImage = sourceMaterialImage;
    }

    public Integer getModuleType() {
        return moduleType;
    }

    public void setModuleType(Integer moduleType) {
        this.moduleType = moduleType;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getSpuGoodsName() {
        return spuGoodsName;
    }

    public void setSpuGoodsName(String spuGoodsName) {
        this.spuGoodsName = spuGoodsName;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getCreater() {
        return creater;
    }

    public void setCreater(String creater) {
        this.creater = creater;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getModifier() {
        return modifier;
    }

    public void setModifier(String modifier) {
        this.modifier = modifier;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Integer getSourceClassfy() {
        return sourceClassfy;
    }

    public void setSourceClassfy(Integer sourceClassfy) {
        this.sourceClassfy = sourceClassfy;
    }

    public String getGoodsImage() {
        return goodsImage;
    }

    public void setGoodsImage(String goodsImage) {
        this.goodsImage = goodsImage;
    }

    public BigDecimal getGoodsPrice() {
        return goodsPrice;
    }

    public void setGoodsPrice(BigDecimal goodsPrice) {
        this.goodsPrice = goodsPrice;
    }

    public String getSourceClassfyName() {
        return sourceClassfyName;
    }

    public void setSourceClassfyName(String sourceClassfyName) {
        this.sourceClassfyName = sourceClassfyName;
    }

    public String getDelayTime() {
        return delayTime;
    }

    public void setDelayTime(String delayTime) {
        this.delayTime = delayTime;
    }

    public String getVideoUrl() {
        return videoUrl;
    }

    public void setVideoUrl(String videoUrl) {
        this.videoUrl = videoUrl;
    }

    public String getVideoPicUrl() {
        return videoPicUrl;
    }

    public void setVideoPicUrl(String videoPicUrl) {
        this.videoPicUrl = videoPicUrl;
    }

    public Integer getSourceType() {
        return sourceType;
    }

    public void setSourceType(Integer sourceType) {
        this.sourceType = sourceType;
    }
}
